The types of traffic that can be communicated over a network include elastic traffic and inelastic traffic. Examples of inelastic traffic include real-time traffic such as voice or video, for which some minimum bandwidth must be guaranteed for proper performance. Elastic traffic, on the other hand, is more delay tolerant and has a characteristic that bandwidth for the flow of elastic traffic can be reduced. Usually, elastic traffic attempts to use up whatever bandwidth is available in the network.
Conventional routing protocols for elastic traffic do not provide for effective performance. Some routing protocols, for example, attempt to use shortest routing paths between given endpoints even though there may be other paths available in the network. This may result in the shortest routing paths becoming congested, while other routing paths may continue to be under-utilized. Other routing protocols may route traffic over various paths without any knowledge of whether a particular path is able to provide good or bad performance.